package com.qaml.mes.device.dto.eqp;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NonNull;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * @Filename：HolidayApplyDTO
 * @Author：zhangzhifeng
 * @Project：mes-device
 * @Date：2024/3/11 14:57
 */
@Data
public class HolidayApplyDTO implements Serializable {

    private static final long serialVersionUID = -3953038236732233566L;

    /**
     * 假期申请id
     */
    @ApiModelProperty(value = "假期申请id")
    String id;

    /**
     * 用户Id
     */
    @NotNull(message = "假期申请用户id不能为空")
    @ApiModelProperty(value = "用户id")
    String userId;

    /**
     * 用户姓名
     */
    @NotBlank(message = "假期申请用户姓名不能为空")
    @ApiModelProperty(value = "用户姓名")
    String userName;

    /**
     * 类型 点检  保养
     */
    @ApiModelProperty(value = "类型")
    @NotBlank(message = "假日申请类型不能为空")
    private String type;

    /**
     * 开始时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开始时间")
    Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "结束时间")
    Date endTime;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    String status;

    /**
     * 提交时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "提交时间")
    Date commitTime;

    /**
     * 审核人Id
     */
    @NotNull(message = "假期申请审核人id不能为空")
    @ApiModelProperty(value = "审核人")
    String recheckUserId;

    /**
     * 审核人姓名
     */
    @NotBlank(message = "假期申请审核人姓名不能为空")
    @ApiModelProperty(value = "审核人姓名")
    String recheckUserName;

    /**
     * 审核时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "审核时间")
    Date recheckTime;

    /**
     * 检保日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "检保日期")
    Date checkUpkeepDate;

    /**
     * 租户ID
     */
    @ApiModelProperty(value = "租户ID")
    String tenantId;

}